#include "stdio.h"
#include "main.h"

int init_queue(Queue ** q){
	*q = (Queue *) malloc(sizeof(Queue));
	Queue *null = NULL;
	if (*q == null){
		return 1;
	}
	(*q)->size = 0;
	return 0;
}

int enqueue (Queue * q, int value){
	if(q->size >= QUEUE_MAX_SIZE){
		return 1;
	}
	q->elements[q->size] = value;
	q->size++;
	return 0;
}

int dequeue(Queue * q, int *value){
	if(q->size == 0){
		return 1;
	}
	*value = q->elements[0];
	for (int i = 1; i < q->size; i++) {
		q->elements[i - 1] = q->elements[i];
	}
	q->size--;
	return 0;
}

int first(Queue * q, int * value){
	if(q->size == 0){
		return 1;
	}
	*value = q->elements[0];
	return 0;
}

int is_empty(Queue * q){
	if(q->size == 0){
		return 0;
	}
	return 1;
}

int size(Queue * q){
	return q->size;
}
